package javajess;
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.Scanner;


public class Similitude {
		
		//création d'un main dans le but d'appliquer et tester ce que l'on cherche
        public static void main (String[] args) throws IOException {
            // variables locales
		BufferedReader  fichierAB = null;
		BufferedReader fichierCM = null;
		PrintWriter writer;
        	ArrayList <String> tabAB = new ArrayList();
        	ArrayList <String> tabCM = new ArrayList();
                String Similaire = null;
			    
             try {
                 fichierAB = new BufferedReader(new FileReader("tokensAB.txt"));
                 fichierCM= new BufferedReader(new FileReader("tokensCM.txt"));
                 
                 //remplissage du tableau pour AB
                 Scanner sAB = new Scanner(fichierAB);
                 //String lineAB = fichierAB.readLine();
                 //lineAB = lineAB.toUpperCase();
                 while(sAB.hasNextLine()){
                     String lineAB = sAB.nextLine();
                     Scanner sLAB = new Scanner(lineAB);
                        while (sLAB.hasNext()){
                            String motAB;
                            motAB = sLAB.next();
                            motAB=motAB.replaceAll("\n","");
                            motAB= motAB.toUpperCase();
                            //System.out.println (motAB);
                            tabAB.add(motAB);
                        }
                 }
                 /*test impression du tableau AB
                 Iterator it =  tabAB.iterator();
                 while (it.hasNext()){
                     System.out.println(it.next());
                 }
                 */
                 //remplissage du tableau pour CM
                 Scanner sCM = new Scanner(fichierCM);
                 //String lineCM = fichierCM.readLine();
                 //lineCM = lineCM.toUpperCase();
                 while(sCM.hasNextLine()){ 
                     String lineCM = sCM.nextLine();
                     Scanner sLCM = new Scanner(lineCM);
                        while (sLCM.hasNext()){
                            String motCM;
                            motCM = sLCM.next();
                            motCM=motCM.replaceAll("\n","");
                            motCM= motCM.toUpperCase();
                            //System.out.println (motCM);
                            tabCM.add(motCM);
                        }
                     
                 }
                 
                 //on parcourt tabAB et on regarde si on a le même mot dans tabCM     
                 Iterator itAB =  tabAB.iterator();
                 Iterator itCM =  tabCM.iterator();
                 while (itAB.hasNext()){
                     while (itCM.hasNext()){
                         
                         if (itAB.next().equals(itCM.next())){
                             Similaire+=itAB.next()+"\n";
                             System.out.println(Similaire);
                         }
                     }
                 }
                 
             }catch (IOException ioe) {
                    System.out.println("Erreur --" + ioe.toString());
             }finally {
                    // dans tous les cas, on ferme nos flux
                    fichierAB.close();
                    fichierCM.close();
             } 
             
             //test si on a des mots similaires si oui on les stockes dans un nouveau fichier
             if (Similaire!=null){
                 try {
                     writer = new PrintWriter(new FileWriter("ABCMsimilitude.txt"));
                     writer.println(Similaire); // enregistre dans le fichier
                     writer.close();
                     System.out.println("le fichier ABCMsimilitude.txt a été créé  ");
                 }catch (IOException ioe) {
                     System.out.println("Erreur --" + ioe.toString()); 
                 }    
             }else {
                    System.out.println ("il n'y a pas de mot similaire");
             }
        }
}